package com.nuoniu.sibanyun.service.erp.in;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nuoniu.sibanyun.entity.bo.UsedGradeRuleBo;
import com.nuoniu.sibanyun.entity.erp.in.InInventoryLocation;
import com.nuoniu.sibanyun.entity.erp.in.InWarehouse;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * <p>
 * 货位 服务类
 * </p>
 *
 * @author baiqiang
 * @since 2020-09-22
 */
public interface IInInventoryLocationService extends IService<InInventoryLocation> {

    Page<InInventoryLocation> pageList(Page page, InInventoryLocation location);

    /**
     * 同步仓库
     * @author 小啊刚
     * @date 2020-09-26
     */
    void updateWarehouse(InWarehouse inWarehouse);

    /**
     * 获取货位列表
     * @author 小啊刚
     * @date 2020-09-27
     */
    List<InInventoryLocation> getByWarehouse(String inWarehouseIds);

    /**
     * 获取货位ID
     * @param warehouseId
     * @return
     */
    List<Integer> getByWarehouseId(Integer warehouseId);

    /**
     * 查重
     * @author 小啊刚
     * @date 2020-09-28
     */
    InInventoryLocation getByCode(InInventoryLocation location);

    /**
     * 根据名称查询
     * @author 小啊刚
     * @date 2020-09-30
     */
    InInventoryLocation getByName(InInventoryLocation location);


    /**
     * 获取 已经使用的 最大编码级次 和 使用的编码规则
     * @return
     */
    UsedGradeRuleBo getMaxRuleLevel();

    /**
     * 批量同步 货位名称 和 货位编码
     * @param location
     */
    void batchUpdateFromInInventoryLocation(InInventoryLocation location);

    /**
     * 批量删除
     * @param ids
     */
    void batchDelete(List<Integer> ids);

    /**
     * todo zy编写
     * @param page
     * @param location
     * @return
     */
    Page<InInventoryLocation> pageList1(Page page, InInventoryLocation location);
}
